package com.eunion.web.admin.service;

import java.util.List;

import com.eunion.core.common.KvVo;
import com.eunion.web.admin.entity.AdminRole;
import com.eunion.web.common.base.BaseService;

/**
 * @see AdminRole
 * 
 */
public interface AdminRoleService extends BaseService<AdminRole, String> {

    public List<Object[]> groupBySql();

    public List<Object[]> groupByHql();

    public List<Object[]> groupBySpecification();
    
	/**
	 * 查询该权限代码或权限名字是否有已经使用.
	 * @param roleCode 角色代码
	 * @param roleName 角色名字
	 * @return 符合条件的查询列表.
	 */
	List<AdminRole> findByRoleCodeOrRoleName(String roleCode, String roleName);

	/**
	 * 查询现在的权限列表.
	 * @return 返回权限列表.
	 */
	List<KvVo> findAllRoles();

	/**
	 * 根据用户名查询其拥有的角色 
	 * @param username 用户名
	 * @return 角色列表
	 */
	List<String> fingAllRolesByUsername(String username);

	/**
	 * 查询角色下的权限列表.
	 * @param roleCode 角色代码
	 * @return 权限代码列表
	 */
	List<String> fingAllAuthsByRole(String roleCode);

	/**
	 * 根据roleCode删除角色下面的权限.
	 * @param roleCode 角色代码
	 * @return　返回删除的个数？
	 */
	int removeRoleAuths(String roleCode,String authCodes []);
}
